// 销售订单路由文件
// 该文件定义了销售订单相关的所有API路由

// 引入Express框架
const express = require('express');

// 创建路由实例
const router = express.Router();

// 引入销售订单路由处理函数
const salesOrdersHandler = require('../router_handler/salesOrders');

// 引入数据验证错误处理中间件
const handleValidationErrors = require('../middleware/handleValidationErrors');

// 引入销售订单数据验证规则
const { addSalesOrderSchema, updateSalesOrderSchema } = require('../schema/salesOrders');

// ==================== 销售订单相关路由 ====================

// 获取销售订单列表（带分页和客户信息）
// GET /salesOrders/list
router.get('/list', salesOrdersHandler.getSalesOrderList);

// 通过ID获取单个销售订单详情（包含客户和产品信息）
// GET /salesOrders/:id
router.get('/:id', salesOrdersHandler.getSalesOrderById);

// 添加销售订单
// POST /salesOrders/add
router.post(
  '/add', 
  addSalesOrderSchema,              // 数据验证规则
  handleValidationErrors,           // 数据验证错误处理中间件
  salesOrdersHandler.addSalesOrder   // 处理函数
);

// 更新销售订单信息
// PUT /salesOrders/update
router.put(
  '/update', 
  updateSalesOrderSchema,           // 数据验证规则
  handleValidationErrors,           // 数据验证错误处理中间件
  salesOrdersHandler.updateSalesOrder // 处理函数
);

// 删除销售订单
// DELETE /salesOrders/:id
router.delete('/:id', salesOrdersHandler.delSalesOrder);

// 获取首页统计数据
// GET /salesOrders/dashboard/stats
router.get('/dashboard/stats', salesOrdersHandler.getDashboardStats);

// 获取最新订单列表
// GET /salesOrders/dashboard/recent-orders
router.get('/dashboard/recent-orders', salesOrdersHandler.getRecentOrders);

// 导出路由实例
module.exports = router